import datetime
from applications.extensions import db
from sqlalchemy import UniqueConstraint,ForeignKey
from sqlalchemy.orm import relationship
class IntermediateYPModel(db.Model):
    __tablename__ = '商品档案_中间品_饮片'
    id = db.Column(db.Integer, primary_key=True, comment='ID') #默认自增primary_key
    品名 = db.Column(db.String(255), comment='品名', nullable=False)
    简拼 = db.Column(db.String(25), comment='简拼', default='')
    全拼 = db.Column(db.String(255), comment='规格', default='')
    默认规格 = db.Column(db.String(255), comment='默认规格', default='')
    代码 = db.Column(db.String(255), comment='代码', nullable=False)
    状态 = db.Column(db.Integer, default=0, comment='启用|停用')
    版本号 = db.Column(db.Integer, default=1, comment='版本号', nullable=False)
    默认产地 = db.Column(db.String(255), comment='默认产地', default='')
    归属类别 = db.Column(db.String(255), comment='归属类别', default='')
    执行标准 = db.Column(db.String(255), comment='执行标准', nullable=False)
    检验标准 = db.Column(db.String(255), comment='检验标准')

    贮存条件 = db.Column(db.String(255), comment='贮藏' , default='')
    药典贮存条件 = db.Column(db.String(255), comment='药典贮存条件', default='')
    备注 = db.Column(db.String(255), comment='备注', default='')

    质量要求 = db.Column(db.String(255), comment='质量要求', default='')
    保质期 = db.Column(db.Integer, comment='保质期', default=24)
    养护内容 = db.Column(db.String(255), comment='养护内容', default='')
    成品_id = db.Column(db.Integer, ForeignKey('商品档案_成品_饮片.id'))

    create_at = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
    update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now,
                          comment='创建时间')
    #创建联合索引
    __table_args__ = (
        UniqueConstraint('代码', '版本号', name='unix_Intermediate_yp_code_version'),
    )
    _成品表 = relationship("FinishedYPModel", backref="finishedYP")
    def to_dict(self):
        return {column.name: getattr(self, column.name) for column in self.__table__.columns}




